//917：仅仅反转字母
//给你一个字符串 s ，根据下述规则反转字符串：
//
//
// 所有非英文字母保留在原有位置。
// 所有英文字母（小写或大写）位置反转。
//
//
// 返回反转后的 s 。
//
//
//
//
//
//
// 示例 1：
//
//
//输入：s = "ab-cd"
//输出："dc-ba"
//
//
//
//
//
// 示例 2：
//
//
//输入：s = "a-bC-dEf-ghIj"
//输出："j-Ih-gfE-dCba"
//
//
//
//
//
// 示例 3：
//
//
//输入：s = "Test1ng-Leet=code-Q!"
//输出："Qedo1ct-eeLg=ntse-T!"
//
//
//
//
// 提示
//
//
// 1 <= s.length <= 100
// s 仅由 ASCII 值在范围 [33, 122] 的字符组成
// s 不含 '\"' 或 '\\'
//
// Related Topics 双指针 字符串
// 👍 168 👎 0

public class ReverseOnlyLetters {
    public static void main(String[] args) {
        String s="Test1ng-Leet=code-Q!";
        System.out.println(reverseOnlyLetters(s));
    }
    public static String reverseOnlyLetters(String s) {
        char[] sc=s.toCharArray();
        int back=sc.length - 1;
        for (int i = 0; i <back; i++) {
            if ((sc[i]>='a'&& sc[i]<='z')||(sc[i]>='A'&& sc[i]<='Z')) {
                for (int j = back; j >= 0; j--) {
                    if ((sc[j]>='a'&& sc[j]<='z')||(sc[j]>='A'&& sc[j]<='Z')) {
                        char temp=sc[i];
                        sc[i]=sc[j];
                        sc[j]=temp;
                        back=j-1;
                        break;
                    }

                }
            }
        }
        return String.valueOf(sc);
    }
}
